import java.util.Arrays;

public class demo1 {
    public static void main(String[] args) {
        //自行创建的例子
        int[] nums = new int[]{1,0,3,0,12};
        Solution solution = new Solution();
        solution.moveZeroes(nums);

        System.out.println(Arrays.toString(nums));
    }
}

//这是力扣提交的代码部分
class Solution {
    public void moveZeroes(int[] nums) {
//        刚开始时没有非零元素的，dest初始化为 -1
        int dest = -1;
        for(int cur = 0;cur < nums.length;cur++) {
//            由于遇到 0 ，不做处理，仅 cur++
//            而for循环结束的最后，就会进行 cur++
//            所以，仅需要处理遇到 非零元素 的情况
            if(nums[cur] != 0) {
                dest++;
                int tmp = nums[cur];
                nums[cur] = nums[dest];
                nums[dest] = tmp;
            }
        }
    }
}